import 'package:flutter/material.dart';
import 'package:rss_readneed/common/appbar_gradient.dart';
import 'package:rss_readneed/common/sliverAppbar_gradient.dart';

import 'dart:io';

//import 'package:vungle/vungle.dart';
//import 'package:unity_ads_flutter/unity_ads_flutter.dart';

/*统一appbar展示*/
class AppbarCommon extends GradientAppBar {

  String titleString;
  BuildContext ctx;
  List<Widget> actions;
  bool isNeedBack;
  Widget noBackLeading;
  AppbarCommon({
    @required this.ctx,
    this.titleString,
    this.actions,
    this.isNeedBack,
    this.noBackLeading,
  }):super(title:Text(titleString,style: TextStyle(color: Colors.white,),),
        leading:(noBackLeading != null) ? noBackLeading : CustomBackBtn(isNeedBack: isNeedBack,),
        actions:actions,
        shadowColor: Theme.of(ctx).primaryColor,
        gradient: RadialGradient(//更改为圆扩散
            colors: [Theme.of(ctx).primaryColorLight,Theme.of(ctx).primaryColorDark],
            center: Alignment.topLeft,
            radius: 4),
      ){assert(ctx != null);}
}

class SliverAppbarCommon extends GradientSliverAppBar {

  String titleString;
  BuildContext ctx;
  List<Widget> actions;
  bool isNeedBack;
  Widget noBackLeading;
  SliverAppbarCommon({
    @required this.ctx,
    this.titleString,
    this.actions,
    this.isNeedBack,
    this.noBackLeading,
  }):super(title:Text(titleString,style: TextStyle(color: Colors.white,),),
    leading:(noBackLeading != null) ? noBackLeading : CustomBackBtn(isNeedBack: isNeedBack,),
    actions:actions,
    shadowColor: Theme.of(ctx).primaryColor,
    gradient: RadialGradient(//更改为圆扩散
        colors: [Theme.of(ctx).primaryColorLight,Theme.of(ctx).primaryColorDark],
        center: Alignment.topLeft,
        radius: 4),
    floating:true,//跟随滑动展示头视图
  ){assert(ctx != null);}
}

//自定义的返回按钮
class CustomBackBtn extends StatelessWidget {

  //强制添加返回按钮标记
  final isNeedBack;

  const CustomBackBtn({ Key key,this.isNeedBack }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    assert(debugCheckHasMaterialLocalizations(context));

    final ModalRoute<dynamic> parentRoute = ModalRoute.of(context);
    final bool canPop = parentRoute?.canPop ?? false;

    return IconButton(
      icon: SizedBox(
        width: 20,
        height: 20,
        child: (canPop || (isNeedBack != null && isNeedBack == true)) ? Image.asset("images_assets/back_btn_nav.png") : Container(),
      ),
      tooltip: MaterialLocalizations.of(context).backButtonTooltip,
      onPressed: () {
        Navigator.maybePop(context);
      },
    );
  }
}
//
//const String vungleIdAndroid='5d64d5e4c4b4120017428161';
//const String vungleIdIOS='5d64d2b9b624860017713d40';
//const String vungleAndroidvideoPlacementId='DEFAULT-8616052';
//const String vungleAndroidbannerPlacementId='BANNER-4229131';
//const String vungleIOSvideoPlacementId='DEFAULT-2941322';
//const String vungleIOSbannerPlacementId='BANNER-3041632';
//
//class VungleAds {
//
//  bool bannerReady = false;
//  bool videoReady = false;
//
//  bool showVungleAdsVideo () {
//
//    if (_instance.videoReady) {
//
//      if (Platform.isAndroid) {//判断平台，引入 dart:io
//        Vungle.playAd(vungleAndroidvideoPlacementId);
//      } else {
//        //for iOS
//        Vungle.playAd(vungleIOSvideoPlacementId);
//      }
//      return true;
//    }
//    return false;
//  }
//
//  bool showVungleBanner () {
//
//    if (_instance.bannerReady) {
//
//      if (Platform.isAndroid) {//判断平台，引入 dart:io
//        Vungle.playAd(vungleAndroidbannerPlacementId);
//      } else {
//        //for iOS
//        Vungle.playAd(vungleIOSbannerPlacementId);
//      }
//      return true;
//    }
//    return false;
//  }
//
//  static VungleAds _instance;
//  static VungleAds get instance {
//
//    if (_instance == null) {
//
//      _instance = VungleAds();
//      if (Platform.isAndroid) {//判断平台，引入 dart:io
//        Vungle.init(vungleIdAndroid);
//        Vungle.loadAd(vungleAndroidvideoPlacementId);
//      } else {
//        //for iOS
//        Vungle.init(vungleIdIOS);
//        Vungle.loadAd(vungleIOSvideoPlacementId);
//      }
//
////You need wait until the plugin initialized to load and show ads
//      Vungle.onInitilizeListener = (){
//
//        if (Platform.isAndroid) {//判断平台，引入 dart:io
//          Vungle.loadAd(vungleAndroidvideoPlacementId);
//          Vungle.loadAd(vungleAndroidbannerPlacementId);
//        } else {
//          //for iOS
//          Vungle.loadAd(vungleIOSvideoPlacementId);
//          Vungle.loadAd(vungleIOSbannerPlacementId);
//        }
//        Vungle.onAdPlayableListener = (placementId,playable){
//
//          if (playable == true && (placementId==vungleIOSvideoPlacementId || placementId==vungleAndroidvideoPlacementId)) {
//
//            _instance.videoReady = true;
//          }
//          if (playable == true && (placementId==vungleIOSbannerPlacementId || placementId==vungleAndroidbannerPlacementId)) {
//
//            _instance.bannerReady = true;
//          }
//        };
//      };
//    }
//    return _instance;
//  }
//}

//
//const String gameIdAndroid='3269405';
//const String gameIdIOS='3269404';
//const String videoPlacementId='video';
//const String bannerPlacementId='banner';
//
//class UnityAds with UnityAdsListener {
//
//  bool bannerReady = false;
//  bool videoReady = false;
//
//  bool showUnityAdsVideo () {
//
//    if (_instance.videoReady) {
//
//      UnityAdsFlutter.show(videoPlacementId);
//
//      return true;
//    }
//    return false;
//  }
//
//  bool showUnityBanner () {
//
//    if (_instance.bannerReady) {
//
//      UnityAdsFlutter.show(bannerPlacementId);
//      return true;
//    }
//    return true;
//  }
//
//  static UnityAds _instance;
//  static UnityAds get instance {
//
//    if (_instance == null) {
//
//      _instance = UnityAds();
//      UnityAdsFlutter.initialize(gameIdAndroid, gameIdIOS, _instance, true);
//    }
//    return _instance;
//  }
//
//  @override
//  void onUnityAdsError(UnityAdsError error, String message) {
//    print('$error occurred: $message');
//  }
//
//  @override
//  void onUnityAdsFinish(String placementId, FinishState result) {
//    print('Finished $placementId with $result');
//  }
//
//  @override
//  void onUnityAdsReady(String placementId) {
//    print('Ready: $placementId');
//    if (placementId == videoPlacementId){
//
//      _instance.videoReady = true;
//    }
//    if (placementId == bannerPlacementId){
//
//      _instance.bannerReady = true;
//    }
//  }
//
//  @override
//  void onUnityAdsStart(String placementId) {
//    print('Start: $placementId');
//  }
//}